#include <iostream>
#include <iterator>
#include <vector>
#include <numeric>
#include <fstream>

using namespace std;

void printVec(vector<int> &);

int main()
{
    ifstream in("afile");
    istream_iterator<string> str_it(in); // 从 "afile" 读取字符串

    // vector<int> vec;
    // istream_iterator<int> in_iter(cin);  // 从 cin 读取 int
    // istream_iterator<int> eof;           // 空的 istream_iterator 可以当作尾后迭代器来使用
    // while (in_iter != eof)               // 当有数据可供读取时
    //     // 后置递增运算读取流，返回迭代器的旧值
    //     // 解引用迭代器，获得从流读取的前一个值
    //     vec.push_back(*in_iter++);

    // 更简洁的写法
    istream_iterator<int> in_iter(cin), eof; // 从 cin 读取 int
    vector<int> vec(in_iter, eof); // 从迭代器范围构造 vec
    
    cin.clear();
    printVec(vec);

    istream_iterator<int> in_iter2(cin), eof2;
    cout << accumulate(in_iter2, eof2, 0) << endl;
}

void printVec(vector<int> &v)
{
    for (int i : v)
        cout << i << " ";
    cout << endl;
    cout << "*********" << endl;
}